 ===============================================================================
 «Публичная библиотека» (http://publ.lib.ru)
 ===============================================================================
 В. Юров
 Assembler
 Практикум
 Санкт-Петербург - Москва - Харьков - Минск: Издательский дом «Питер», 2001

 ББК 32.973-018
 УДК 681.3.06(075)

 В. Юров. Assembler: практикум (+дискета) - СПб: Питер, 2001. - 400 с.: ил.
 ISBN 5-272-00380-2
 Основное содержание книги составляет базовый практический материал для создания сложных полнофункциональных программ на языке ассемблера. Каждая из десяти глав практикума посвящена определенной теме. Характер подобранного материала - прикладной. Исчерпывающе рассмотрены вопросы организации взаимодействия программ на ассемблере с внешним миром. Приведены варианты ассемблерной реализации многих известных и востребованных на практике алгоритмов. Изложение базовых вопросов прикладного программирования сопровождается рассмотрением ряда интересных задач.
 Книга предназначена для студентов и специалистов, применяющих ассемблер для решения задач прикладного и системного программирования.
 Для наиболее качественного и эффективного изучения материала книги рекомендуется использовать данный практикум параллельно с учебником и справочником того же автора.

 СОДЕРЖАНИЕ:
 Благодарности (9).
 Введение (10).
 Структура книги (10).
 От издательства (14).
 Глава 1. Программирование целочисленных арифметических операций (15).
 Двоичные числа (16).
 Сложение двоичных чисел (16).
 Вычитание двоичных чисел (21).
 Умножение двоичных чисел (24).
 Деление двоичных чисел (31).
 Двоично-десятичные числа (BCD-числа) (38).
 Неупакованные BCD-числа (38).
 Упакованные BCD-числа (45).
 Генерация последовательности, случайных чисел (46).
 Конгруэнтный метод генерации последовательности случайных чисел (47).
 Аддитивный генератор случайных чисел (51).
 Программа генерации высокослучайных двоичных наборов (53).
 Глава 2. Сложные структуры данных (56).
 Основные понятия (56).
 Способы распределения памяти (59).
 Множество (62).
 Массив (64).
 Описание массивов. (64).
 Работа с массивами (67).
 Структура (93).
 Вложенные структуры (93).
 Массивы структур - таблицы (96).
 Список (123).
 Последовательные списки (123).
 Связные списки (130).
 Сеть (141).
 Создание двусвязного списка состояний конечного автомата (145).
 Создание односвязного списка переходов для состояния конечного автомата (146).
 Дерево (148).
 Представление дерева в памяти (149).
 Лексикографическое дерево (156).
 Элементы компиляции программ (157).
 Формальное описание языка программирования (158).
 Описание процесса трансляции программы (164).
 Глава 3. Процедуры в программах ассемблера (176).
 Реализация рекурсивных процедур (176).
 Реализация вложенных процедур (184).
 Разработка динамических (DLL) библиотек (188).
 Шаг 1. Разработка текста DLL-библиотеки (189).
 Шаг 2. Трансляция и компоновка исходного текста DLL-библиотеки (191).
 Шаг 3. Создание lib-файла (192).
 Шаг 4. Сборка приложения с использованием DLL-библиотеки (193).
 Шаг 5. Проверка работоспособности приложения с использованием DLL-библиотеки (194).
 Глава 4. Обработка цепочек элементов (196).
 Прямой поиск в текстовой строке (197).
 Поиск с предварительным анализом искомой подстроки (201).
 Глава 5. Работа с консолью в программах на ассемблере (209).
 Функции BIOS для работы с консолью (209).
 Функции BIOS для работы с клавиатурой (210).
 Функции BIOS для работы с экраном (215).
 Функции MS DOS для работы с консолью (219).
 Функции MS DOS для ввода данных с клавиатуры (220).
 Функции MS DOS для вывода данных на экран (223).
 Работа с консолью в среде Windows (225).
 Организация ввода-вывода в консольном приложении Windows (225).
 Глава 6. Преобразование чисел (244).
 Ввод чисел с консоли (245).
 Ввод целых десятичных чисел из диапазона 0 ..99 (245).
 Ввод целых десятичных чисел из диапазона 0 ..4 294 967 295 (246).
 Ввод целых десятичных чисел из диапазона 0 ..999 999 999 999 999 999 (248).
 Ввод целых десятичных чисел из диапазона 0 оо (250).
 Ввод вещественных чисел (252).
 Вывод чисел на консоль (253).
 Вывод шестнадцатеричных чисел (253).
 Вывод целых десятичных чисел из диапазона 0 ..99 (256).
 Вывод целых десятичных чисел из диапазона 0 оо (257).
 Вывод целых десятичных чисел из диапазона 0 ..999 999 999 999 999 999 (258).
 Вывод вещественных чисел (260).
 Глава 7. Работа с файлами в программах на ассемблере (264).
 Работа с файлами в MS DOS (имена 8.3) (265).
 Создание, открытие, закрытие и удаление файла (265).
 Чтение, запись, позиционирование в файле (272).
 Получение и изменение атрибутов файла (280).
 Работа с дисками, каталогами и организация поиска файлов (282).
 Работа с файлами в MS DOS (длинные имена) (287).
 Создание, открытие, закрытие и удаление файла (291).
 Получение и изменение атрибутов файла (294).
 Работа с дисками, каталогами и организация поиска файлов (297).
 Файловый ввод-вывод в Win32 (306).
 Обработка ошибок (308).
 Создание, открытие, закрытие и удаление файла (309).
 Чтение, запись, позиционирование в файле (313).
 Получение и изменение атрибутов файла (318).
 Работа с дисками, каталогами и организация поиска файлов (321).
 Файлы, отображаемые в память (329).
 Глава 8. Профайлер (333).
 Расширение традиционной архитектуры Intel (333).
 Команды RDMSR и WRMSR (334).
 Команда CPUID - получение информации о текущем процессоре (334).
 Использование счетчика меток реального времени TSC (337).
 Глава 9. Вычисление CRC (342).
 CRC-арифметика (345).
 Прямой алгоритм вычисления CRC (351).
 Табличные алгоритмы вычисления CRC (355).
 Основы (355).
 Прямой табличный алгоритм CRC16 (357).
 Прямой табличный алгоритм CRC32 (360).
 «Зеркальный» табличный алгоритм CRC32 (364).
 Глава 10. Программирование ХММ-расширения (369).
 Программирование ХММ-расширения (369).
 Описание упакованных и скалярных данных (371).
 Примеры использования команд ХММ-расширения (374).
 Препроцессор команд ХММ-расширения (379).
 Поддержка ХММ-команд в файле iaxmm.inc (380).
 Поддержка ХММ-команд путем препроцессорной обработки (385).
 Заключение (392).
 Список литературы (393).

 В. Юров
 Assembler: практикум
 Главный редактор Е. Строганова
 Заведующий редакцией И. Корнеев
 Руководитель проекта И. Корнеев
 Литературный редактор А. Жданов
 Художник Н. Биржаков
 Иллюстрации Д. Елезов, М. Жданова
 Корректоры Н. Лукина, М. Одинокова
 Верстка Ю. Сергиенко
 ЗАО «Питер Бук». Санкт-Петербург.
 Подписано в печать 09.07.01. Тираж 7000 экз.
 Отпечатано с готовых диапозитивов в ФГУП «Печатный двор» им. А.М. Горького Министерства РФ по делам печати, телерадиовещания и средств массовых коммуникаций. Санкт-Петербург.
 ===============================================================================
 *** О П И С А Н И Е * И З Д А Н И Я *** 5.4 ***
 ===============================================================================
 |ТИТУЛ ВЕБ-СТРАНИЦЫ¦ Юров Виктор Иванович
 |СЕРИЯ, ГОД, НОМЕР ¦
 |АВТОРЫ... НАЗВАНИЕ¦ Юров В.И._ Assembler. Практикум.
 |НАЗВАНИЕ ОРИГИНАЛА¦
 |ЖАНР-ФОРМА-ВИД-ТИП¦
 Автор: Виктор Иванович Юров.
 Художник: Н. Биржаков. Иллюстрации Д. Елезов, М. Жданова.
 |ИЗДАТЕЛЬ. - СЕРИЯ ¦ Санкт-Петербург: Издательский дом «Питер», 2001
 |АВТОРЫ ФАЙЛА И OCR¦ Скан, OCR, обработка, формат Djv-Fax: AlVaKo 2025
 |ОСНОВНОЕ ИМЯ ПАПКИ¦ Yurov_Viktor_Ivanovich
 |ОСНОВНОЕ ИМЯ СЕРИИ¦
 |ОСНОВНОЕ ИМЯ ФАЙЛА¦ Yurov_V.I.__Assembler._Praktikum.(2001)
 |ДОПОЛНЕНИЯ К ИМЕНИ¦ [djv-fax] [pdf-fax]
 |ОСНОВНОЕ ИМЯ ОБЛ. ¦ Assp01
 |АННОТАЦИЯ ИЗДАНИЯ ¦ ИЗ ИЗДАНИЯ:
 Основное содержание книги составляет базовый практический материал для создания сложных полнофункциональных программ на языке ассемблера. Каждая из десяти глав практикума посвящена определенной теме. Характер подобранного материала - прикладной. Исчерпывающе рассмотрены вопросы организации взаимодействия программ на ассемблере с внешним миром. Приведены варианты ассемблерной реализации многих известных и востребованных на практике алгоритмов. Изложение базовых вопросов прикладного программирования сопровождается рассмотрением ряда интересных задач.
 Книга предназначена для студентов и специалистов, применяющих ассемблер для решения задач прикладного и системного программирования.
 Для наиболее качественного и эффективного изучения материала книги рекомендуется использовать данный практикум параллельно с учебником и справочником того же автора.
 |СОДЕРЖАНИЕ ИЗДАНИЯ¦ СОДЕРЖАНИЕ:
 Благодарности (9).
 Введение (10).
 Структура книги (10).
 От издательства (14).
 Глава 1. Программирование целочисленных арифметических операций (15).
 Двоичные числа (16).
 Сложение двоичных чисел (16).
 Вычитание двоичных чисел (21).
 Умножение двоичных чисел (24).
 Деление двоичных чисел (31).
 Двоично-десятичные числа (BCD-числа) (38).
 Неупакованные BCD-числа (38).
 Упакованные BCD-числа (45).
 Генерация последовательности, случайных чисел (46).
 Конгруэнтный метод генерации последовательности случайных чисел (47).
 Аддитивный генератор случайных чисел (51).
 Программа генерации высокослучайных двоичных наборов (53).
 Глава 2. Сложные структуры данных (56).
 Основные понятия (56).
 Способы распределения памяти (59).
 Множество (62).
 Массив (64).
 Описание массивов. (64).
 Работа с массивами (67).
 Структура (93).
 Вложенные структуры (93).
 Массивы структур - таблицы (96).
 Список (123).
 Последовательные списки (123).
 Связные списки (130).
 Сеть (141).
 Создание двусвязного списка состояний конечного автомата (145).
 Создание односвязного списка переходов для состояния конечного автомата (146).
 Дерево (148).
 Представление дерева в памяти (149).
 Лексикографическое дерево (156).
 Элементы компиляции программ (157).
 Формальное описание языка программирования (158).
 Описание процесса трансляции программы (164).
 Глава 3. Процедуры в программах ассемблера (176).
 Реализация рекурсивных процедур (176).
 Реализация вложенных процедур (184).
 Разработка динамических (DLL) библиотек (188).
 Шаг 1. Разработка текста DLL-библиотеки (189).
 Шаг 2. Трансляция и компоновка исходного текста DLL-библиотеки (191).
 Шаг 3. Создание lib-файла (192).
 Шаг 4. Сборка приложения с использованием DLL-библиотеки (193).
 Шаг 5. Проверка работоспособности приложения с использованием DLL-библиотеки (194).
 Глава 4. Обработка цепочек элементов (196).
 Прямой поиск в текстовой строке (197).
 Поиск с предварительным анализом искомой подстроки (201).
 Глава 5. Работа с консолью в программах на ассемблере (209).
 Функции BIOS для работы с консолью (209).
 Функции BIOS для работы с клавиатурой (210).
 Функции BIOS для работы с экраном (215).
 Функции MS DOS для работы с консолью (219).
 Функции MS DOS для ввода данных с клавиатуры (220).
 Функции MS DOS для вывода данных на экран (223).
 Работа с консолью в среде Windows (225).
 Организация ввода-вывода в консольном приложении Windows (225).
 Глава 6. Преобразование чисел (244).
 Ввод чисел с консоли (245).
 Ввод целых десятичных чисел из диапазона 0 ..99 (245).
 Ввод целых десятичных чисел из диапазона 0 ..4 294 967 295 (246).
 Ввод целых десятичных чисел из диапазона 0 ..999 999 999 999 999 999 (248).
 Ввод целых десятичных чисел из диапазона 0 оо (250).
 Ввод вещественных чисел (252).
 Вывод чисел на консоль (253).
 Вывод шестнадцатеричных чисел (253).
 Вывод целых десятичных чисел из диапазона 0 ..99 (256).
 Вывод целых десятичных чисел из диапазона 0 оо (257).
 Вывод целых десятичных чисел из диапазона 0 ..999 999 999 999 999 999 (258).
 Вывод вещественных чисел (260).
 Глава 7. Работа с файлами в программах на ассемблере (264).
 Работа с файлами в MS DOS (имена 8.3) (265).
 Создание, открытие, закрытие и удаление файла (265).
 Чтение, запись, позиционирование в файле (272).
 Получение и изменение атрибутов файла (280).
 Работа с дисками, каталогами и организация поиска файлов (282).
 Работа с файлами в MS DOS (длинные имена) (287).
 Создание, открытие, закрытие и удаление файла (291).
 Получение и изменение атрибутов файла (294).
 Работа с дисками, каталогами и организация поиска файлов (297).
 Файловый ввод-вывод в Win32 (306).
 Обработка ошибок (308).
 Создание, открытие, закрытие и удаление файла (309).
 Чтение, запись, позиционирование в файле (313).
 Получение и изменение атрибутов файла (318).
 Работа с дисками, каталогами и организация поиска файлов (321).
 Файлы, отображаемые в память (329).
 Глава 8. Профайлер (333).
 Расширение традиционной архитектуры Intel (333).
 Команды RDMSR и WRMSR (334).
 Команда CPUID - получение информации о текущем процессоре (334).
 Использование счетчика меток реального времени TSC (337).
 Глава 9. Вычисление CRC (342).
 CRC-арифметика (345).
 Прямой алгоритм вычисления CRC (351).
 Табличные алгоритмы вычисления CRC (355).
 Основы (355).
 Прямой табличный алгоритм CRC16 (357).
 Прямой табличный алгоритм CRC32 (360).
 «Зеркальный» табличный алгоритм CRC32 (364).
 Глава 10. Программирование ХММ-расширения (369).
 Программирование ХММ-расширения (369).
 Описание упакованных и скалярных данных (371).
 Примеры использования команд ХММ-расширения (374).
 Препроцессор команд ХММ-расширения (379).
 Поддержка ХММ-команд в файле iaxmm.inc (380).
 Поддержка ХММ-команд путем препроцессорной обработки (385).
 Заключение (392).
 Список литературы (393).
 ===============================================================================